#include<graphics.h>
#include<math.h>
#include<dos.h>

#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300;
#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240;
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)

void init()
{
    int i,l,x1,x2,y1,y2;
    setbkcolor(1);
    circle(300,240,200);
    circle(300,240,205);
    circle(300,240,5);
    for(i=0;i<60;i++)
    {
        if(i%5==0) l=15;
        else l=5;
        x1=200*cos(i*6*pi/180)+300;
        y1=200*sin(i*6*pi/180)+240;
        x2=(200-l)*cos(i*6*pi/180)+300;
        y2=(200-l)*sin(i*6*pi/180)+240;
        line(x1,y1,x2,y2);
    }
}

main()
{
    int x,y;
    int gd=VGA,gm=2;
    unsigned char h,m,s;
    struct time t[1];
    initgraph(&gd,&gm,"d:\\tc");
    init();
    setwritemode(1);
    gettime(t);
    h=t[0].ti_hour;
    m=t[0].ti_min;
    s=t[0].ti_sec;
    setcolor(7);
    d(150,h,30);
    setcolor(14);
    d(170,m,6);
    setcolor(4);
    d(190,s,6);
    while(!kbhit())
    {
        while(t[0].ti_sec==s)
        gettime(t);
        sound(400);
        delay(70);
        sound(200);
        delay(30);
        nosound();
        setcolor(4);
        d(190,s,6);
        s=t[0].ti_sec;
        d(190,s,6);
        if (t[0].ti_min!=m)
        {
            setcolor(14);
            d(170,m,6);
            m=t[0].ti_min;
            d(170,m,6);
        }
        if (t[0].ti_hour!=h)
        {
            setcolor(7);
            d(150,h,30);
            h=t[0].ti_hour;
            d(150,h,30);
            sound(1000);
            delay(240);
            nosound();
            delay(140);
            sound(2000);
            delay(240);
            nosound();
        }
    }

    getch();
    closegraph();
}


